<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
// +----------------------------------------------------------------------

namespace Home\Controller;

use Com\Message;

/**
 * 前台首页控制器
 * 主要获取首页聚合数据
 */
class SendController extends HomeController {
    
    public function message($method){
        $mobile = I('request.mobile');
        
        if (!preg_match('/1[34578]{1}\d{9}$/', $mobile)) {
            $this->ajaxReturn(array('status'=>0, 'info'=>'手机号码格式错误'));
            exit;
        }        
        $eff_minute = 30; // 有效期，单位为分钟
        
        /* 导入数据库 */
        $M_message_verify = M('message_verify');
        
        $deadline = NOW_TIME + ($eff_minute*60); // 验证码有效时间
        $msg='';
        switch ( strtolower($method) ) {
            case 'register':
                $code = $this->getRandCode(6, 'integer');
                
                $data = array(
                    'type'          =>  'register', 
                    'username'        =>  $mobile, 
                    'code'          =>  $code, 
                    'create_time'   =>  NOW_TIME, 
                    'deadline'      =>  $deadline, 
                    'status'        =>  1
                );  
                $msg='尊敬的客户您好，您的注册验证码是'.$code; 
                break;
            case 'forgotten':
                $code = $this->getRandCode(6, 'integer');
                
                $data = array(
                    'type'          =>  'forgotten',
                    'username'        =>  $mobile,
                    'code'          =>  $code,
                    'create_time'   =>  NOW_TIME,
                    'deadline'      =>  $deadline,
                    'status'        =>  1
                );
                $msg='尊敬的客户您好，您找回密码的验证码是'.$code;
                break;                
            default:
                $this->ajaxReturn(array('status'=>0, 'info'=>'非法参数'));
        }
        
        $return = Message::send($mobile,$msg.'【聚真宝科技】');
        if($return['status']){         
            $id = $M_message_verify->add($data);
            if ($id > 0) {
                $this->ajaxReturn(array('status'=>1,'code'=>$code, 'info'=>'发送成功'));
            }else{
                $this->ajaxReturn(array('status'=>0,info=>'系统错误'));
            }
        }else {
            $this->ajaxReturn($return);
        }
    
    }
    
    private function getRandCode($length = '8', $strtype = 'all') {
        switch ($strtype) {
            case 'integer':
                $chars_array = array(
                    "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
                );
                break;
            case 'string':
                $chars_array = array(
                    "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
                    "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
                    "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
                    "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
                    "S", "T", "U", "V", "W", "X", "Y", "Z",
                );
                break;
            default:
                $chars_array = array(
                    "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
                    "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
                    "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
                    "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
                    "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
                    "S", "T", "U", "V", "W", "X", "Y", "Z",
                );
                break;
        }
    
        $charsLen = count($chars_array) - 1;
    
        $outputstr = "";
        for ($i = 0; $i < $length; $i ++) {
            $outputstr .= $chars_array[mt_rand(0, $charsLen)];
        }
    
        return $outputstr;
    }
}
?>